'use strict';

const Controller = require('egg').Controller;

class ResumeTemplateController extends Controller {
  /**
   * 创建模板
   * POST /api/templates
   */
  async create() {
    const { ctx } = this;

    try {
      const data = ctx.request.body;

      console.log('\n========== 收到创建模板请求 ==========');
      console.log('模板数据:', JSON.stringify(data, null, 2));
      console.log('======================================\n');

      if (!data.name) {
        ctx.status = 400;
        ctx.body = {
          code: 400,
          msg: '模板名称不能为空',
          data: null
        };
        return;
      }

<<<<<<< HEAD
=======
      // 从JWT token中获取用户ID（可选，允许管理员创建公共模板）
      const userId = ctx.user?.id;
      data.user_id = userId || null;

>>>>>>> resume
      const template = await ctx.service.resumeTemplate.createTemplate(data);

      console.log('✅ 模板创建成功！ID:', template.id);

      ctx.status = 201;
      ctx.body = {
        code: 0,
        msg: '模板创建成功',
        data: template
      };
    } catch (error) {
      console.error('\n========== ❌ 创建模板失败 ==========');
      console.error('错误:', error.message);
      console.error('堆栈:', error.stack);
      console.error('====================================\n');

      ctx.status = 500;
      ctx.body = {
        code: -1,
        msg: '创建模板失败：' + error.message,
        data: null
      };
    }
  }

  /**
   * 批量导入模板
   * POST /api/templates/batch
   */
  async batchImport() {
    const { ctx } = this;

    try {
      const { templates } = ctx.request.body;

      console.log('\n========== 批量导入模板 ==========');
      console.log('模板数量:', templates.length);
      console.log('==================================\n');

      if (!templates || !Array.isArray(templates)) {
        ctx.status = 400;
        ctx.body = {
          code: 400,
          msg: '请提供模板数组',
          data: null
        };
        return;
      }

      const results = await ctx.service.resumeTemplate.batchImportTemplates(templates);

      console.log('✅ 批量导入成功！导入数量:', results.length);

      ctx.body = {
        code: 0,
        msg: `成功导入 ${results.length} 个模板`,
        data: results
      };
    } catch (error) {
      console.error('\n========== ❌ 批量导入失败 ==========');
      console.error('错误:', error.message);
      console.error('====================================\n');

      ctx.status = 500;
      ctx.body = {
        code: -1,
        msg: '批量导入失败：' + error.message,
        data: null
      };
    }
  }

  /**
   * 获取所有模板
   * GET /api/templates
   */
  async index() {
    const { ctx } = this;

    try {
      const templates = await ctx.service.resumeTemplate.getTemplateList();

      ctx.body = {
        code: 0,
        msg: '获取模板列表成功',
        data: templates
      };
    } catch (error) {
      ctx.status = 500;
      ctx.body = {
        code: -1,
        msg: error.message,
        data: null
      };
    }
  }

  /**
   * 获取模板详情
   * GET /api/templates/:id
   */
  async show() {
    const { ctx } = this;

    try {
      const id = ctx.params.id;
      const template = await ctx.service.resumeTemplate.getTemplateById(id);

      ctx.body = {
        code: 0,
        msg: '获取模板详情成功',
        data: template
      };
    } catch (error) {
      ctx.status = error.status || 500;
      ctx.body = {
        code: error.status || -1,
        msg: error.message,
        data: null
      };
    }
  }
}

module.exports = ResumeTemplateController;

